<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>


    <script>
        // console.log("loading开始")

        // let one = new Promise((res, rej) => {
        //     setTimeout(() => {
        //         console.log("我是第一个异步任务-1000")
        //         res()
        //     }, 1000)
        // })

        // let two = new Promise((res, rej) => {
        //     setTimeout(() => {
        //         console.log("我是第二个异步任务-2000")
        //         rej("第二个任务失败了")
        //     }, 2000)
        // })

        // let three = new Promise((res, rej) => {
        //     setTimeout(() => {
        //         console.log("我是第三个异步任务-3000")
        //         res()
        //     }, 3000)
        // })

        // Promise.all([...promise])
        // 所有的promise全部执行完毕才会执行.then  (成功)
        // Promise.all 捕捉有一个失败的promise终止执行
        // const all = Promise.all([one, two, three])
        // all.then(res => {
        //     console.log('loading取消')
        // }).catch(err => {
        //     console.log(err)
        // })



        let one = new Promise((res, rej) => {
            setTimeout(() => {
                console.log("我是第一个异步任务-1000")
                rej('1000')
            }, 1000)
        })

        let two = new Promise((res, rej) => {
            setTimeout(() => {
                console.log("我是第二个异步任务-2000")
                res("2000")
            }, 2000)
        })

        let three = new Promise((res, rej) => {
            setTimeout(() => {
                console.log("我是第二个异步任务-2000")
                res("3000")
            }, 3000)
        })

        // race  有一个执行成功 返回执行成功的promise
        const race = Promise.race([one, two, three])

        race.then(res => {
            console.log(res)
        }).catch(err => {
            console.log(err)
        })



    </script>
</body>

</html>